package com.faxsun.core.persist.dao;

import java.util.Date;
import java.util.List;

import mtons.modules.persist.Dao;
import mtons.modules.pojos.Page;

import com.faxsun.core.persist.entity.LiveMsgPO;

public interface LiveMsgDao extends Dao<LiveMsgPO> {

	/**
	 * 获取最近的消息列表
	 * 
	 * @param page
	 * @param channelId
	 *            频道id
	 * @return
	 */
	public List<LiveMsgPO> listHistory(Page page, long channelId);

	/**
	 * 获取在msgId（不包括msgId本身）之前的历史消息
	 * 
	 * @param page
	 * @param channelId
	 *            频道id
	 * @param msgId
	 *            大于0，为合法消息id；小于等于0，则为最近的消息(等同于{@link LiveMsgDao#listRecent})
	 * @return
	 */
	public List<LiveMsgPO> listHisotry(Page page, long channelId, long msgId);

	/**
	 * 获取最新的消息
	 * 
	 * @param page
	 * @param channelId
	 * @param msgId
	 *            若msgId>0,则获取msgId之后的新消息(不包含msgId);否则，按pageSize获取最新的消息。
	 *            page中的pageSize需在调用此方法前做好设置
	 * @return
	 */
	public List<LiveMsgPO> listNew(Page page, long channelId, long msgId);
    
    /**
     * 根据channelId获取直播消息日期列表
     * @param channelId
     * @return
     */
    public List<Date> findMsgDateById(long channelId);
}
